package com.ishare.api.service.face;

import com.ishare.api.po.login.*;
import com.ishare.api.vo.login.RepeatedRegisterVo;
import com.ishare.api.vo.user.UserVo;

/**
 * 登陆服务
 *
 * @author 李嘉宾
 */
public interface LoginFaceService {

    /**
     * 用户注册提交
     *
     * @param userRegisterParam 注册参数
     * @return 注册成功的用户对象
     */
    UserVo registerSubmit(UserRegisterParam userRegisterParam);

    /**
     * 用户登录提交
     * @param userLoginParam 登录参数
     * @return 登录成功的用户对象
     */
    UserVo loginSubmit(UserLoginParam userLoginParam);


    /**
     * 用户获取邮箱验证码
     *
     * @param userGetEmailCodeParam 获取邮箱验证码参数
     */
    void sendEmailCode(UserGetEmailCodeParam userGetEmailCodeParam);

    /**
     *
     * 校验邮箱是否重复
     *
     * @param checkEmailRepeatedRegisterParam 参数
     * @return 校验结果
     */
    RepeatedRegisterVo checkEmailIsRepeated(CheckEmailRepeatedRegisterParam checkEmailRepeatedRegisterParam);

    /**
     * '
     * 校验用户名是否重复
     *
     * @param checkUserNameRepeatedRegisterParam 参数
     * @return 校验结果
     */
    RepeatedRegisterVo checkUserNameIsRepeated(CheckUserNameRepeatedRegisterParam checkUserNameRepeatedRegisterParam);
}
